From 2b267db6db7b93d44704da223ce17211a9af2827 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 2 Jan 2007 15:49:31 +0000 Subject: [PATCH] Try harder not to beep on events which are not meant to insert stuff in 2007-01-02 Matthias Clasen * gtk/gtktextbuffer.c (gtk_text_view_key_press_event): Try harder not to beep on events which are not meant to insert stuff in the buffer. (#390514, Yevgen Muntyan) svn path=/trunk/; revision=17020 --- ChangeLog | 6 ++++++ gtk/gtktextview.c | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8e2b367758..9c68fbc497 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-01-02 Matthias Clasen + + * gtk/gtktextbuffer.c (gtk_text_view_key_press_event): + Try harder not to beep on events which are not meant to + insert stuff in the buffer. (#390514, Yevgen Muntyan) + 2007-01-02 Matthias Clasen * gtk/gtktextbufferrichtext.c: Small documentation fixes. diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 757f28a1cf..839cb3d384 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -3901,7 +3901,8 @@ gtk_text_view_key_press_event (GtkWidget *widget, GdkEventKey *event) } /* Pass through Tab as literal tab, unless Control is held down */ else if ((event->keyval == GDK_Tab || - event->keyval == GDK_KP_Tab) && + event->keyval == GDK_KP_Tab || + event->keyval == GDK_ISO_Left_Tab) && !(event->state & GDK_CONTROL_MASK)) { /* If the text widget isn't editable overall, or if the application @@ -3929,8 +3930,17 @@ gtk_text_view_key_press_event (GtkWidget *widget, GdkEventKey *event) gtk_text_view_reset_blink_time (text_view); gtk_text_view_pend_cursor_blink (text_view); - if (!retval && event->length) - gtk_widget_error_bell (widget); + if (!retval) + { + /* We only want to beep if we are reasonably sure + * the event was meant to insert some character into + * the buffer, but failed. We don't beep on events + * which look like attempts to activate an accelerator. + */ + if (!event->is_modifier && + ((event->state & (gtk_accelerator_get_default_mod_mask () & ~GDK_SHIFT_MASK)) == 0)) + gtk_widget_error_bell (widget); + } return retval; } -- 2.30.2